// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   AccesoDAO.java

package org.fiel.admin.dao;

import java.io.PrintStream;
import java.sql.*;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.fiel.admin.struts.forms.AccesoForm;

public class AccesoDAO
{

    public AccesoDAO()
        throws Exception
    {
        conn = null;
        try
        {
            Context ctx = new InitialContext();
            DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/FielDB");
            conn = ds.getConnection();
        }
        catch(Exception e)
        {
            System.err.println("AccesoDAO() Error:\n" + e.getMessage());
            throw new Exception("AccesoDAO() Error:\n" + e.getMessage());
        }
    }

    public void createAcceso(AccesoForm acceso)
        throws Exception
    {
        PreparedStatement pstmt = null;
        try
        {
            conn.setAutoCommit(false);
            pstmt = conn.prepareStatement("INSERT INTO ACCESOS (Nivel,Descripcion) VALUES(?,?)");
            pstmt.setString(1, acceso.getNivel());
            pstmt.setString(2, acceso.getAcceso());
            pstmt.executeUpdate();
            conn.commit();
            conn.setAutoCommit(true);
        }
        catch(Exception e)
        {
            conn.rollback();
            System.err.println("AccesoDAO.createAcceso() Error:\n" + e.getMessage());
            throw new Exception("AccesoDAO.createAcceso() Error:\n" + e.getMessage());
        }
        finally
        {
            try
            {
                if(pstmt != null)
                    pstmt.close();
                if(conn != null)
                    conn.close();
            }
            catch(Exception ex) { }
        }
    }

    public List retrieveAccesos()
        throws Exception
    {
        PreparedStatement pstmt = null;
        ResultSet rset = null;
        List accesos = null;
        try
        {
            pstmt = conn.prepareStatement("SELECT * FROM ACCESOS ORDER BY Nivel");
            AccesoForm acceso;
            for(rset = pstmt.executeQuery(); rset.next(); accesos.add(acceso))
            {
                acceso = new AccesoForm();
                acceso.setId(rset.getString("idenint"));
                acceso.setNivel(rset.getString("Nivel"));
                acceso.setAcceso(rset.getString("Descripcion"));
            }

        }
        catch(Exception e)
        {
            System.err.println("AccesoDAO.retrieveAccesos() Error:\n" + e.getMessage());
            throw new Exception("AccesoDAO.retrieveAccesos() Error:\n" + e.getMessage());
        }
        finally
        {
            try
            {
                if(rset != null)
                    rset.close();
                if(pstmt != null)
                    pstmt.close();
                if(conn != null)
                    conn.close();
            }
            catch(Exception ex) { }
        }
        return accesos;
    }

    public AccesoForm retrieveAcceso(String id)
        throws Exception
    {
        PreparedStatement pstmt = null;
        ResultSet rset = null;
        AccesoForm acceso = null;
        try
        {
            pstmt = conn.prepareStatement("SELECT * FROM ACCESOS WHERE idenint = ?");
            pstmt.setString(1, id);
            rset = pstmt.executeQuery();
            if(rset.next())
            {
                acceso = new AccesoForm();
                acceso.setId(rset.getString("idenint"));
                acceso.setNivel(rset.getString("Nivel"));
                acceso.setAcceso(rset.getString("Descripcion"));
            }
        }
        catch(Exception e)
        {
            System.err.println("AccesoDAO.retrieveAcceso() Error:\n" + e.getMessage());
            throw new Exception("AccesoDAO.retrieveAcceso() Error:\n" + e.getMessage());
        }
        finally
        {
            try
            {
                if(rset != null)
                    rset.close();
                if(pstmt != null)
                    pstmt.close();
                if(conn != null)
                    conn.close();
            }
            catch(Exception ex) { }
        }
        return acceso;
    }

    public void updateAcceso(AccesoForm acceso)
        throws Exception
    {
        PreparedStatement pstmt = null;
        try
        {
            conn.setAutoCommit(false);
            pstmt = conn.prepareStatement("UPDATE ACCESOS SET Nivel = ?, Descripcion = ? WHERE idenint = ?");
            pstmt.setString(1, acceso.getNivel());
            pstmt.setString(2, acceso.getAcceso());
            pstmt.executeUpdate();
            conn.commit();
            conn.setAutoCommit(true);
        }
        catch(Exception e)
        {
            conn.rollback();
            System.err.println("AccesoDAO.updateAcceso() Error:\n" + e.getMessage());
            throw new Exception("AccesoDAO.updateAcceso() Error:\n" + e.getMessage());
        }
        finally
        {
            try
            {
                if(pstmt != null)
                    pstmt.close();
                if(conn != null)
                    conn.close();
            }
            catch(Exception ex) { }
        }
    }

    public void deleteAcceso(String id)
        throws Exception
    {
        PreparedStatement pstmt = null;
        try
        {
            conn.setAutoCommit(false);
            pstmt = conn.prepareStatement("DELETE FROM ACCESOS WHERE idenint = ?");
            pstmt.setString(1, id);
            pstmt.executeUpdate();
            conn.commit();
            conn.setAutoCommit(true);
        }
        catch(Exception e)
        {
            conn.rollback();
            System.err.println("AccesoDAO.deleteAcceso() Error:\n" + e.getMessage());
            throw new Exception("AccesoDAO.deleteAcceso() Error:\n" + e.getMessage());
        }
        finally
        {
            try
            {
                if(pstmt != null)
                    pstmt.close();
                if(conn != null)
                    conn.close();
            }
            catch(Exception ex) { }
        }
    }

    private Connection conn;
}
